Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New realizations diffExp2Lin and diffLin2Lin in 45_carbonprice #1723

Merged
merged 2 commits into from
Jul 4, 2024

Conversation

laurinks
Copy link
Contributor

@laurinks laurinks commented Jul 3, 2024

Purpose of this PR

  1. Enable stronger carbon price differentiation - see new switch cm_co2_tax_spread (introduced by Nico)
  2. Combine exponentially increasing carbon prices and carbon price differentiation which is needed for overshoot scenarios in ScenarioMIP - see new realization diffExp2Lin (with cm_iterative_target_adj = 5)
  3. Enable exponentially increasing carbon prices until peak year that remain constant thereafter (or increase linearly at fixed slope) - this corresponds to theoretically optimal Hotelling's rule - see new realization diffExp2Lin (with cm_iterative_target_adj = 9 and cm_co2_tax_spread = 1)
  4. Creating new realization diffLin2Lin based on current default diffCurvPhaseIn2Lin. The changes concern 1., minor code clean up and a quick fix for more near-term realism in PkBudg runs - see also this issue. More changes are expected in the next weeks. The goal is that diffLin2Lin will eventually replace diffCurvPhaseIn2Lin as the default forPkBudg runs.
  5. Updating default growth rate for exponential carbon pricing (cm_co2_tax_growth) to 4.5% instead of 5% in order to be consistent with this change. Note that this does not affect any AMT runs.

Type of change

(Make sure to delete from the Type-of-change list the items not relevant to your PR)

  • New feature
  • Minor change (default scenarios show only small differences)
  • This change requires a documentation update (to be judged by reviewers)

Checklist:

  • My code follows the coding etiquette
  • I performed a self-review of my own code
  • I explained my changes within the PR, particularly in hard-to-understand areas
  • I checked that the in-code documentation is up-to-date
  • I adjusted the reporting in remind2 where it was needed
  • I adjusted forbiddenColumnNames in readCheckScenarioConfig.R in case the PR leads to deprecated switches
  • All automated model tests pass (FAIL 0 in the output of make test)
  • The changelog CHANGELOG.md has been updated correctly (to be judged by reviewers in needed)

Further information (optional):

At Reviewers: It's my first pull request, so I am thankful for a careful check and for any feedback!

  • Test runs are here: /p/tmp/laurinko/hpc/remind/output (folders created on 03-07-2024 use the latestversion)
  • Comparison of results (what changes by this PR?): Default runs are not affected by the PR. Scenario comparison PDFs are in /p/tmp/laurinko/hpc/remind/ (see pages 52-53 for carbon prices):
    Further scenario comparison PDFs in comments below together with plots and explanations
    (1) Exponential carbon pricing in end-of-century budget runs with different budgets (500, 650, 1050) and different carbon price differentiation spread (1, 10, 20): compScen-EocBudg-2024-07-02_12.57.31-H12.pdf
    (2) Exponential carbon pricing in peak budget runs with different budgets (500, 650, 1050) and different carbon price differentiation spread (1, 10, 20): compScen-PkBudg-exp-2024-07-02_12.58.44-H12.pdf
    (3) Comparison of linear and exponential carbon pricing in 650 peak budget runs with different carbon price differentiation spread (1, 10, 20): compScen-PkBudg650-2024-07-02_13.00.26-H12.pdf
    (4) Comparison of linear and exponential carbon pricing in 1050 peak budget runs with different carbon price differentiation spread (1, 10, 20): compScen-PkBudg1050-2024-07-02_12.59.32-H12.pdf

Copy link
Contributor

@orichters orichters left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Overall, a great PR with detailed explanation 👍
  • You might add some plots that might be helpful to quickly grasp what is going on, see picture below. The compareScenarios you linked might be deleted at some point, so it is good to have some basic information available on github.
  • I would indeed add a short "45_carbonprice add realizations diffExp2Lin and diffLin2Lin" to the changelog
  • I barely see a difference in carbon price for the 10 vs. 20 price differentiation (orange ellipse). Is that intended?
  • The black arrows point to very substantial jumps in 2025 for a PkBudg500. Is that intended? Wasn't one of the ideas to have a smooth transition from 2020 to 2025?

image

@laurinks
Copy link
Contributor Author

laurinks commented Jul 4, 2024

Comparison of diffCurvPhaseIn2Lin (left) and diffLin2Lin (right) (see /p/tmp/laurinko/hpc/remind/compScen-diffCurvPhaseIn2LinVSdiffLin2Lin-2024-07-04_17.19.36-H12.pdf):
image
Observations and comments:

  1. CO2 prices in 2025 are substantially lower in diffLin2Lin due to linear curve going through 0 in 2020 instead of 2010. This quick fix leads to more near-term realism. Further improvements will follow (e.g. to deal with somewhat too low CO2 prices in PkBudg1050). This naturally leads to higher CO2 prices at peak.
  2. Updated carbon price differentiation changed spread factors for some mid-income countries

@laurinks
Copy link
Contributor Author

laurinks commented Jul 4, 2024

Comparison of convergence year 2050 and 2070 (see /p/tmp/laurinko/hpc/remind/compScen-conv-2050VS2070-2024-07-04_17.22.40-H12.pdf):
image
Illustration of later convergence year (default = 2050 on LHS, 2070 on RHS) for CO2 budget of 650 Gt with different shapes of CO2 prices (diffLin2Lin on TOP, diffExp2Lin with PkBudg in MIDDLE, diffExp2Lin with EocBudg on BOTTOM)
image
Delayed convergence leads to lower CO2 prices (world average) mid-century, but then requires higher CO2 prices (world average) at the end of the century.

@laurinks
Copy link
Contributor Author

laurinks commented Jul 4, 2024

Comparison of diffLin2Lin (left) and diffExp2Lin (right) for different peak budgets (see /p/tmp/laurinko/hpc/remind/compScen-diffExpVSLin2Lin-2024-07-04_17.25.37-H12.pdf):
image
Comments:

  1. diffLin2Lin has lower CO2 prices in 2025 because the linear curve (if visually extended) goes through 0 in 2020. This leads to improved near-term realism.
  2. diffExp2Lin has quite high CO2 prices in 2025. This is inherent to the realization because the developed countries follow an exponential CO2 price path with rate given by the internal interest rate (from Hotelling's rule, here 4.5%). The realization can only shift up and down the carbon price in the start year in order to match the prescribed peak budget.

@laurinks
Copy link
Contributor Author

laurinks commented Jul 4, 2024

Comparison of old default of 5% (green) and new default of 4.5% (red) in a run with 650 Gt end-of-century budget and exponential CO2 price increase until 2100 (see /p/tmp/laurinko/hpc/remind/compScen-exp-rate-change-2024-07-04_17.16.17-H12.pdf):
image

@laurinks
Copy link
Contributor Author

laurinks commented Jul 4, 2024

The stronger carbon price differentiation mostly affects regions with relatively low GDP per capita (PPP):
image
Indeed, differences in the plots only become visible upon closer inspection. This will be more pronounced if convergence in delayed to 2070:
image
image

@laurinks laurinks requested a review from orichters July 4, 2024 16:42
@laurinks laurinks merged commit b078295 into remindmodel:develop Jul 4, 2024
2 checks passed
@laurinks laurinks deleted the carbon-price-trajectories branch July 4, 2024 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants